Selecting a server during development with ASP.NET Core

ASP.NET Core के अंतर्गत डेवलेपमेंट के समय सर्वर का चयन

ASP.NET Core डेवलपमेंट में कौन सा सर्वर चुनें? दोस्तों! 🙏 आइए, इस प्रश्न का उत्तर समझते हैं।

ASP.NET Core डेवलपमेंट के समय कौन सा सर्वर उपयोग करना चाहिए, यह कई कारकों पर निर्भर करता है, जैसे कि:

  • आपका ऑपरेटिंग सिस्टम (Windows, Linux, Mac)
  • डेवलपमेंट एनवायरनमेंट (Visual Studio, VS Code, CLI, Docker)
  • फाइनल डिप्लॉयमेंट कहां होगा (IIS, Linux, क्लाउड, कंटेनर)

Kestrel (डिफ़ॉल्ट और क्रॉस-प्लेटफॉर्म सर्वर)

👉 कब उपयोग करें?

  • ✔ जब आपको Windows, Linux, और Mac पर एक ही सर्वर का उपयोग करना हो।
  • ✔ जब आप Docker में काम कर रहे हों।
  • ✔ जब आप प्रोडक्शन में Nginx/IIS के साथ रिवर्स प्रॉक्सी का उपयोग करने की योजना बना रहे हों।

👉 कब न करें?

  • ❌ जब आपको IIS Express के इन-बिल्ट फीचर्स चाहिए हों।
  • ❌ जब आपको Windows Authentication चाहिए हो।

👉 कैसे सेट करें?

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:5000"
      }
    }
  }
}

📌 CLI से चलाने के लिए:

dotnet run

IIS Express (केवल Windows)

👉 कब उपयोग करें?

  • ✔ जब आप Windows पर Visual Studio का उपयोग कर रहे हों।
  • ✔ जब आपको Windows Authentication की जरूरत हो।
  • ✔ जब आप IIS प्रोडक्शन पर डिप्लॉय करने की योजना बना रहे हों।

👉 कब न करें?

  • ❌ जब आप Linux या Mac पर काम कर रहे हों।
  • ❌ जब आप Docker में डेवेलपमेंट कर रहे हों।

👉 कैसे सेट करें?

{
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

IIS (Windows Server पर होस्टिंग के लिए)

👉 कब उपयोग करें?

  • ✔ जब आप Windows Server पर डिप्लॉय करने की योजना बना रहे हों।
  • ✔ जब आपको Reverse Proxy की जरूरत हो।
  • ✔ जब आपको Windows Authentication चाहिए हो।

👉 कब न करें?

  • ❌ जब आप Linux या Mac पर काम कर रहे हों।
  • ❌ जब आप Docker या क्लाउड-बेस्ड डेवेलपमेंट कर रहे हों।

👉 कैसे सेट करें?

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseIIS();
var app = builder.Build();
app.Run();

Nginx/Apache (Linux/Mac पर डेवलपमेंट या प्रोडक्शन)

👉 कब उपयोग करें?

  • ✔ जब आप Linux/Mac पर काम कर रहे हों।
  • ✔ जब आप प्रोडक्शन में Linux सर्वर पर डिप्लॉय कर रहे हों।
  • ✔ जब आपको रिवर्स प्रॉक्सी की जरूरत हो।

👉 कब न करें?

  • ❌ जब आप Windows-only फीचर्स (Windows Auth, IIS-specific tools) उपयोग कर रहे हों।
  • ❌ जब आपको Visual Studio के अंदर Debugging चाहिए हो।

👉 कैसे सेट करें?


Kestrel रन करें:
dotnet MyApp.dll

Nginx कॉन्फ़िगर करें (/etc/nginx/sites-available/default)
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

Nginx रीस्टार्ट करें:
sudo systemctl restart nginx

Docker + Nginx (क्लाउड-बेस्ड डेवलपमेंट)

👉 कब उपयोग करें?

  • ✔ जब आप Docker कंटेनर में काम कर रहे हों।
  • ✔ जब आपको क्लाउड-नेटिव एप्लिकेशन बनानी हैं।
  • ✔ जब आपको Microservices डेवलपमेंट करना हो।

👉 कब न करें?

  • ❌ जब आप सिर्फ Windows/IIS आधारित एप्लिकेशन बना रहे हों।
  • ❌ जब आप Visual Studio Debugging चाहते हों।

👉 कैसे सेट करें?


FROM mcr.microsoft.com/dotnet/aspnet:8.0
COPY . /app
WORKDIR /app
EXPOSE 80
CMD ["dotnet", "MyApp.dll"]

📌 Docker Compose से Nginx और ASP.NET Core रन करें:


version: '3.4'
services:
web:
build: .
ports:
- "5000:80"
nginx:
image: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "80:80"

📌 Docker रन करें:

docker-compose up -d

निष्कर्ष: कब कौन सा सर्वर चुनें?

सर्वर कब उपयोग करें? कब न करें?
Kestrel (डिफ़ॉल्ट) क्रॉस-प्लेटफॉर्म, CLI, Docker Windows Authentication चाहिए
IIS Express Windows पर Visual Studio Debugging Linux/Mac पर
IIS Windows Server पर डिप्लॉय Linux/Mac पर
Nginx/Apache Linux/Mac पर या Reverse Proxy चाहिए Windows-only Apps
Docker + Nginx क्लाउड और Microservices IIS Specific Features चाहिए

💥मुख्य बातें

  • Windows में Visual Studio का उपयोग करते समय IIS Express सुविधाजनक होता है।
  • Linux/Mac या कंटेनर में Kestrel + Nginx बेहतर होता है।
  • प्रोडक्शन में IIS (Windows) या Nginx (Linux) के साथ Kestrel सुरक्षित रहता है।


Next: ASP.NET Core के अंतर्गत क्लास के अलावा क्या इंटरफेस भी सर्विसेज के रूप में प्रयोग किया जा सकता है?

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Web Fundamental Concepts in Hindi for Beginners - FAQs about Cookies with their Answers

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Understanding Content-Type Header in Web Technology